package com.hzhc.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 班列下集装箱详情
 * </p>
 *
 * @author 1
 * @since 2024-05-30
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("train_plan_detail")
public class TrainPlanDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 班列计划id
     */
    private Integer planId;

    /**
     * 箱号
     */
    private String cntrNo;


    /**
     * 火车名(火车号)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String trainNumber;

    /**
     * (火车)股道
     */
    private String strands;

    /**
     * 顺位号
     */
    private Integer swId;

    /**
     * 运单号
     */
    private String billNo;

    /**
     * 施封号
     */
    private String sealNo;

    /**
     * 货名
     */
    private String goods;

    /**
     * 箱尺寸
     */
    private String cntrSize;

    /**
     * 空重标志( E：空，F：重）
     */
    private String efFlag;

    /**
     * 箱公司(箱主)
     */
    private String cntrMain;

    /**
     * 托运人重量
     */
    private Integer shipperWeight;

    /**
     * 承运人重量
     */
    private Integer carrierWeight;

    /**
     * 箱货重量
     */
    private Double weightPred;

    /**
     * 装货港(发站)
     */
    private String zhPort;

    /**
     * 发货人
     */
    private String consigner;

    /**
     * 目的港(到站)
     */
    private String mdPort;

    /**
     * 收货人
     */
    private String consignee;

    /**
     * 装(卸)车时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private LocalDateTime zxTime;

    /**
     * 车上作业(默认0：否   1：是)
     */
    private Integer workCar;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createtime;

    /**
     * 箱所在区域
     */
    private String area;

    /**
     * 箱所在贝位
     */
    private String bay;

    /**
     * 会员Id
     */
    private Long memberId;

    /**
     * 系统用户Id(创建人)
     */
    private Long userId;

    /**
     * 姓名(创建人)
     */
    private String userName;

    /**
     * 访问方式（移动端,pc端)
     */
    private String accesspath;

    /**
     * 选择的箱号集合
     */
    @TableField(exist = false)
    private List<String> cntrNoList;

    /**
     * 删除
     */
    private Integer disable;

    /**
     * 理货状态  默认0:未理货  1：已理货
     */
    private Integer tallyFlag;

    /**
     * 车牌号
     */
    private String carNo;

    /**
     * 班列计划号
     */
    private String orderNo;

    /**
     * 理货人id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long tallyUserId;

    /**
     * 理货人会员id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long tallyMemberId;

    /**
     * 理货人姓名
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String tallyUserName;

    private String consigneeLxr;//收货联系人

    private String consigneeContact;//收货联系方式

    private String signLx;//卸车清单导入标志

    private String groupId;//分组id

    private Integer isZzt;//是否直装、提

    /**
     * 下水令
     */
    private String waterOrder;

    @TableField(exist = false)
    private String oldCntrNo;

    private String lhWeight;//理货重量

    private Integer companyId;// 货主/客户id

    private Integer tsNum;//推送组别号

    private String sendBureau;//发局

    private String finalBureau;//到局

    private String lineOrYard;//专用线

    private String consignerLxr;//发货联系人

    private String consignerContact;//发货联系方式

    private String wgTrip;//批量完工车次(时间戳)

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime wgTime;//完工时间
}
